#pragma once
#include "Common.h"
#include <glm\glm.hpp>
#include "EffectPool.h"

class SceneManager;
class Effect;
class RenderData;
class SceneRendererBridge;


class EXPORT Renderer
{
	EffectPool effectPool;
	Effect * activeEffect;
	int activeEffectMask;

	SceneRendererBridge * bridge;
	friend class SceneManager;

	Renderer(SceneRendererBridge * bridge);
	~Renderer(void);

public:
	void SetActiveEffect(int effectMask);
	void PushRenderData(RenderData & rData);
	void PushWorldMatrix(glm::mat4 worldMatrix);
	void SetUpSceneRelatedData();
};

